﻿<?php

/*
 * Condições do teste:
 *
 * No início do teste:
 * - insere o campeonato meucampeonato - 2011 no banco, para comparação e informar que já existe;
 *
 * No Final:
 * - remove os campeonatos meucampeonato - 2011 e sucesso - 2010, esse último tendo sido
 * o caso de cadastro com sucesso no sistema.
 *
*/

require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
require_once 'Conexao.php';

class TesteCadastroCampeonato extends PHPUnit_Extensions_SeleniumTestCase {

    protected $receivedCon;
    protected $result;
    protected $insercaoBD = "INSERT INTO campeonato(nome) VALUES('meucampeonato - 2011')";
    protected $remocaoBD = "DELETE FROM campeonato
        WHERE nome='meucampeonato - 2011' or nome='sucesso - 2010'";

    protected function setUp() {
        $this->receivedCon = new Conexao();
        $this->receivedCon->conect();
        echo "conexao bem sucedida.\n";

        $this->result = $this->receivedCon->query($this->insercaoBD);
        echo "Operacao no banco de dados bem sucedida.\n";

        //$this->receivedCon->limpar_memoria($this->result);
        //echo "Memória limpa com sucesso.\n";

        $this->setBrowser("*firefox");
        $this->setBrowserUrl("http://localhost");
    }


    protected function tearDown() {

        $this->receivedCon->query($this->remocaoBD);
        echo "Banco deletado com sucesso.\n";
        $this->receivedCon->close();
        echo "Conexao finalizada com sucesso.\n\n";

    }

    public function logonAdmin(){
        $this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->type("email", "fabiofeliciano@di.ufpb.br");
        $this->type("senha", "123456");
        $this->click("submit");
    }

    public function testCamposEmBranco() {        
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->click("inserir");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("O valor é obrigatório e não pode estar vazio"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testCampoCampeonatoEmBranco() {
        //$this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->click("inserir");
        $this->waitForPageToLoad("30000");
        $this->type("ano_campeonato", "2010");
        try {
            $this->verifyTextPresent($this->isTextPresent("O valor é obrigatório e não pode estar vazio"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testCampoAnoEmBranco() {
        //$this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->click("inserir");
        $this->waitForPageToLoad("30000");
        $this->type("campeonato", "brasileiro");
        try {
            $this->verifyTextPresent($this->isTextPresent("O valor é obrigatório e não pode estar vazio"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }
    

    public function testTamanhoExcedidoNomeCampeonato() {
        //$this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->type("campeonato", "brasileirobrasileirobrasileiro");
        $this->type("ano_campeonato", "2010");
        $this->click("inserir");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("O tamanho de"));
            $this->verifyTextPresent($this->isTextPresent("é superior a 23 caracteres"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }        
    }

    public function testTamanhoAnoInferior4() {
        //$this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->type("campeonato", "brasileiro");
        $this->type("ano_campeonato", "201");
        $this->click("inserir");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("O tamanho de"));
            $this->verifyTextPresent($this->isTextPresent("é inferior a 4 caracteres"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testTamanhoAnoSuperior4() {
        //$this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->type("campeonato", "brasileiro");
        $this->type("ano_campeonato", "20101");
        $this->click("inserir");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("O tamanho de"));
            $this->verifyTextPresent($this->isTextPresent("é superior a 4 caracteres"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testStringAno() {
        //$this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->type("campeonato", "brasileiro");
        $this->type("ano_campeonato", "20r3");
        $this->click("inserir");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Somente números são aceitos"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testStringAnoSuperior4() {
        //$this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->type("campeonato", "brasileiro");
        $this->type("ano_campeonato", "20rd3");
        $this->click("inserir");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Somente números são aceitos"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testStringAnoInferior4() {
        //$this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->type("campeonato", "brasileiro");
        $this->type("ano_campeonato", "20r");
        $this->click("inserir");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Somente números são aceitos"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testBotaoNovoTime() {
        //$this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->click("novo_time");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Cadastro de times"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());
        }
    }

    public function testCampeonatoJaCadastrado() {
        //$this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->type("campeonato", "meucampeonato");
        $this->type("ano_campeonato", "2011");
        $this->click("inserir");
        //$this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Campeonato já cadastrado."));
          //  $this->assertTrue($this->isTextPresent("Campeonato já cadastrado."));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testSucessoCadastro() {
        //$this->open("http://localhost/administrador/campeonato/cadastrar-campeonato");
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->type("campeonato", "sucesso");
        $this->type("ano_campeonato", "2010");
        $this->click("inserir");
        //$this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Campeonato cadastrado com sucesso."));
            //$this->assertTrue($this->isTextPresent("Campeonato cadastrado com sucesso."));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }
}

?>